home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / AIncludes / ImageCodec.a < prev    next >
Encoding:
Text File  |  1998-02-12  |  55.9 KB  |  1,643 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        ImageCodec.a
  3. ;
  4. ;    Contains:    QuickTime Interfaces.
  5. ;
  6. ;    Version:    Technology:    QuickTime 3.0
  7. ;                Release:    Universal Interfaces 3.1
  8. ;
  9. ;    Copyright:    © 1990-1998 by Apple Computer, Inc., all rights reserved
  10. ;
  11. ;    Bugs?:        Please include the the file and version information (from above) with
  12. ;                the problem description.  Developers belonging to one of the Apple
  13. ;                developer programs can submit bug reports to:
  14. ;
  15. ;                    devsupport@apple.com
  16. ;
  17. ;
  18.     IF &TYPE('__IMAGECODEC__') = 'UNDEFINED' THEN
  19. __IMAGECODEC__ SET 1
  20.  
  21.     IF &TYPE('__MACTYPES__') = 'UNDEFINED' THEN
  22.     include 'MacTypes.a'
  23.     ENDIF
  24.     IF &TYPE('__QUICKDRAW__') = 'UNDEFINED' THEN
  25.     include 'Quickdraw.a'
  26.     ENDIF
  27.     IF &TYPE('__IMAGECOMPRESSION__') = 'UNDEFINED' THEN
  28.     include 'ImageCompression.a'
  29.     ENDIF
  30.     IF &TYPE('__COMPONENTS__') = 'UNDEFINED' THEN
  31.     include 'Components.a'
  32.     ENDIF
  33.     IF &TYPE('__MOVIES__') = 'UNDEFINED' THEN
  34.     include 'Movies.a'
  35.     ENDIF
  36.     IF &TYPE('__GXTYPES__') = 'UNDEFINED' THEN
  37.     include 'GXTypes.a'
  38.     ENDIF
  39.  
  40.  
  41. ;     codec capabilities flags    
  42.  
  43. codecCanScale                    EQU        $00000001
  44. codecCanMask                    EQU        $00000002
  45. codecCanMatte                    EQU        $00000004
  46. codecCanTransform                EQU        $00000008
  47. codecCanTransferMode            EQU        $00000010
  48. codecCanCopyPrev                EQU        $00000020
  49. codecCanSpool                    EQU        $00000040
  50. codecCanClipVertical            EQU        $00000080
  51. codecCanClipRectangular            EQU        $00000100
  52. codecCanRemapColor                EQU        $00000200
  53. codecCanFastDither                EQU        $00000400
  54. codecCanSrcExtract                EQU        $00000800
  55. codecCanCopyPrevComp            EQU        $00001000
  56. codecCanAsync                    EQU        $00002000
  57. codecCanMakeMask                EQU        $00004000
  58. codecCanShift                    EQU        $00008000
  59. codecCanAsyncWhen                EQU        $00010000
  60. codecCanShieldCursor            EQU        $00020000
  61. codecCanManagePrevBuffer        EQU        $00040000
  62. codecHasVolatileBuffer            EQU        $00080000
  63. codecWantsRegionMask            EQU        $00100000
  64. codecImageBufferIsOnScreen        EQU        $00200000
  65. codecWantsDestinationPixels        EQU        $00400000
  66. codecWantsSpecialScaling        EQU        $00800000
  67. codecHandlesInputs                EQU        $01000000
  68. codecCanDoIndirectSurface        EQU        $02000000
  69. codecIsSequenceSensitive        EQU        $04000000
  70. codecRequiresOffscreen            EQU        $08000000
  71. codecRequiresMaskBits            EQU        $10000000
  72. codecCanRemapResolution            EQU        $20000000
  73. codecIsDirectToScreenOnly        EQU        $40000000
  74. codecCanLockSurface                EQU        $80000000
  75. CodecCapabilities        RECORD 0
  76. flags                     ds.l    1                ; offset: $0 (0)
  77. wantedPixelSize             ds.w    1                ; offset: $4 (4)
  78. extendWidth                 ds.w    1                ; offset: $6 (6)
  79. extendHeight             ds.w    1                ; offset: $8 (8)
  80. bandMin                     ds.w    1                ; offset: $A (10)
  81. bandInc                     ds.w    1                ; offset: $C (12)
  82. pad                         ds.w    1                ; offset: $E (14)
  83. time                     ds.l    1                ; offset: $10 (16)
  84. sizeof                     EQU *                    ; size:   $14 (20)
  85.                         ENDR
  86. ;     codec condition flags    
  87.  
  88. codecConditionFirstBand            EQU        $00000001
  89. codecConditionLastBand            EQU        $00000002
  90. codecConditionFirstFrame        EQU        $00000004
  91. codecConditionNewDepth            EQU        $00000008
  92. codecConditionNewTransform        EQU        $00000010
  93. codecConditionNewSrcRect        EQU        $00000020
  94. codecConditionNewMask            EQU        $00000040
  95. codecConditionNewMatte            EQU        $00000080
  96. codecConditionNewTransferMode    EQU        $00000100
  97. codecConditionNewClut            EQU        $00000200
  98. codecConditionNewAccuracy        EQU        $00000400
  99. codecConditionNewDestination    EQU        $00000800
  100. codecConditionFirstScreen        EQU        $00001000
  101. codecConditionDoCursor            EQU        $00002000
  102. codecConditionCatchUpDiff        EQU        $00004000
  103. codecConditionMaskMayBeChanged    EQU        $00008000
  104. codecConditionToBuffer            EQU        $00010000
  105. codecConditionCodecChangedMask    EQU        $80000000
  106.  
  107.  
  108. codecInfoResourceType            EQU        'cdci'                ; codec info resource type 
  109. codecInterfaceVersion            EQU        2                    ; high word returned in component GetVersion 
  110. CDSequenceDataSourceQueueEntry RECORD 0
  111. nextBusy                 ds.l    1                ; offset: $0 (0)
  112. descSeed                 ds.l    1                ; offset: $4 (4)
  113. dataDesc                 ds.l    1                ; offset: $8 (8)
  114. data                     ds.l    1                ; offset: $C (12)
  115. dataSize                 ds.l    1                ; offset: $10 (16)
  116. useCount                 ds.l    1                ; offset: $14 (20)
  117. frameTime                 ds.l    1                ; offset: $18 (24)
  118. frameDuration             ds.l    1                ; offset: $1C (28)
  119. timeScale                 ds.l    1                ; offset: $20 (32)
  120. sizeof                     EQU *                    ; size:   $24 (36)
  121.                         ENDR
  122. ; typedef struct CDSequenceDataSourceQueueEntry * CDSequenceDataSourceQueueEntryPtr
  123.  
  124. CDSequenceDataSource    RECORD 0
  125. recordSize                 ds.l    1                ; offset: $0 (0)
  126. next                     ds.l    1                ; offset: $4 (4)
  127. seqID                     ds.l    1                ; offset: $8 (8)
  128. sourceID                 ds.l    1                ; offset: $C (12)
  129. sourceType                 ds.l    1                ; offset: $10 (16)
  130. sourceInputNumber         ds.l    1                ; offset: $14 (20)
  131. dataPtr                     ds.l    1                ; offset: $18 (24)
  132. dataDescription             ds.l    1                ; offset: $1C (28)
  133. changeSeed                 ds.l    1                ; offset: $20 (32)
  134. transferProc             ds.l    1                ; offset: $24 (36)
  135. transferRefcon             ds.l    1                ; offset: $28 (40)
  136. dataSize                 ds.l    1                ; offset: $2C (44)
  137. ;  fields available in QT 3 and later 
  138. dataQueue                 ds.l    1                ; offset: $30 (48)        ;  queue of CDSequenceDataSourceQueueEntry structures
  139. originalDataPtr             ds.l    1                ; offset: $34 (52)
  140. originalDataSize         ds.l    1                ; offset: $38 (56)
  141. originalDataDescription     ds.l    1                ; offset: $3C (60)
  142. originalDataDescriptionSeed  ds.l 1                ; offset: $40 (64)
  143. sizeof                     EQU *                    ; size:   $44 (68)
  144.                         ENDR
  145. ; typedef struct CDSequenceDataSource *    CDSequenceDataSourcePtr
  146.  
  147. ICMFrameTimeInfo        RECORD 0
  148. startTime                 ds        wide            ; offset: $0 (0)
  149. scale                     ds.l    1                ; offset: $8 (8)
  150. duration                 ds.l    1                ; offset: $C (12)
  151. sizeof                     EQU *                    ; size:   $10 (16)
  152.                         ENDR
  153. ; typedef struct ICMFrameTimeInfo *        ICMFrameTimeInfoPtr
  154.  
  155. CodecCompressParams        RECORD 0
  156. sequenceID                 ds.l    1                ; offset: $0 (0)        ;  precompress,bandcompress 
  157. imageDescription         ds.l    1                ; offset: $4 (4)        ;  precompress,bandcompress 
  158. data                     ds.l    1                ; offset: $8 (8)
  159. bufferSize                 ds.l    1                ; offset: $C (12)
  160. frameNumber                 ds.l    1                ; offset: $10 (16)
  161. startLine                 ds.l    1                ; offset: $14 (20)
  162. stopLine                 ds.l    1                ; offset: $18 (24)
  163. conditionFlags             ds.l    1                ; offset: $1C (28)
  164. callerFlags                 ds.w    1                ; offset: $20 (32)
  165. capabilities             ds.l    1                ; offset: $22 (34)        ;  precompress,bandcompress 
  166. progressProcRecord         ds        ICMProgressProcRecord ; offset: $26 (38)
  167. completionProcRecord     ds        ICMCompletionProcRecord ; offset: $2E (46)
  168. flushProcRecord             ds        ICMFlushProcRecord ; offset: $36 (54)
  169. srcPixMap                 ds        PixMap            ; offset: $3E (62)        ;  precompress,bandcompress 
  170. prevPixMap                 ds        PixMap            ; offset: $70 (112)
  171. spatialQuality             ds.l    1                ; offset: $A2 (162)
  172. temporalQuality             ds.l    1                ; offset: $A6 (166)
  173. similarity                 ds.l    1                ; offset: $AA (170)
  174. dataRateParams             ds.l    1                ; offset: $AE (174)
  175. reserved                 ds.l    1                ; offset: $B2 (178)
  176. ;  The following fields only exist for QuickTime 2.1 and greater 
  177. majorSourceChangeSeed     ds.w    1                ; offset: $B6 (182)
  178. minorSourceChangeSeed     ds.w    1                ; offset: $B8 (184)
  179. sourceData                 ds.l    1                ; offset: $BA (186)
  180. ;  The following fields only exit for QuickTime 2.5 and greater 
  181. preferredPacketSizeInBytes  ds.l 1                ; offset: $BE (190)
  182. ;  The following fields only exit for QuickTime 3.0 and greater 
  183. requestedBufferWidth     ds.l    1                ; offset: $C2 (194)        ;  must set codecWantsSpecialScaling to indicate this field is valid
  184. requestedBufferHeight     ds.l    1                ; offset: $C6 (198)        ;  must set codecWantsSpecialScaling to indicate this field is valid
  185. sizeof                     EQU *                    ; size:   $CA (202)
  186.                         ENDR
  187. CodecDecompressParams    RECORD 0
  188. sequenceID                 ds.l    1                ; offset: $0 (0)        ;  predecompress,banddecompress 
  189. imageDescription         ds.l    1                ; offset: $4 (4)        ;  predecompress,banddecompress 
  190. data                     ds.l    1                ; offset: $8 (8)
  191. bufferSize                 ds.l    1                ; offset: $C (12)
  192. frameNumber                 ds.l    1                ; offset: $10 (16)
  193. startLine                 ds.l    1                ; offset: $14 (20)
  194. stopLine                 ds.l    1                ; offset: $18 (24)
  195. conditionFlags             ds.l    1                ; offset: $1C (28)
  196. callerFlags                 ds.w    1                ; offset: $20 (32)
  197. capabilities             ds.l    1                ; offset: $22 (34)        ;  predecompress,banddecompress 
  198. progressProcRecord         ds        ICMProgressProcRecord ; offset: $26 (38)
  199. completionProcRecord     ds        ICMCompletionProcRecord ; offset: $2E (46)
  200. dataProcRecord             ds        ICMDataProcRecord ; offset: $36 (54)
  201. port                     ds.l    1                ; offset: $3E (62)        ;  predecompress,banddecompress 
  202. dstPixMap                 ds        PixMap            ; offset: $42 (66)        ;  predecompress,banddecompress 
  203. maskBits                 ds.l    1                ; offset: $74 (116)
  204. mattePixMap                 ds.l    1                ; offset: $78 (120)
  205. srcRect                     ds        Rect            ; offset: $7C (124)        ;  predecompress,banddecompress 
  206. matrix                     ds.l    1                ; offset: $84 (132)        ;  predecompress,banddecompress 
  207. accuracy                 ds.l    1                ; offset: $88 (136)        ;  predecompress,banddecompress 
  208. transferMode             ds.w    1                ; offset: $8C (140)        ;  predecompress,banddecompress 
  209. frameTime                 ds.l    1                ; offset: $8E (142)        ;  banddecompress 
  210. reserved                 ds.l    1                ; offset: $92 (146) <-- really an array of length one
  211. ;  The following fields only exist for QuickTime 2.0 and greater 
  212. matrixFlags                 ds.b    1                ; offset: $96 (150)        ;  high bit set if 2x resize 
  213. matrixType                 ds.b    1                ; offset: $97 (151)
  214. dstRect                     ds        Rect            ; offset: $98 (152)        ;  only valid for simple transforms 
  215. ;  The following fields only exist for QuickTime 2.1 and greater 
  216. majorSourceChangeSeed     ds.w    1                ; offset: $A0 (160)
  217. minorSourceChangeSeed     ds.w    1                ; offset: $A2 (162)
  218. sourceData                 ds.l    1                ; offset: $A4 (164)
  219. maskRegion                 ds.l    1                ; offset: $A8 (168)
  220. ;  The following fields only exist for QuickTime 2.5 and greater 
  221. wantedDestinationPixelTypes  ds.l 1                ; offset: $AC (172)        ;  Handle to 0-terminated list of OSTypes 
  222. screenFloodMethod         ds.l    1                ; offset: $B0 (176)
  223. screenFloodValue         ds.l    1                ; offset: $B4 (180)
  224. preferredOffscreenPixelSize  ds.w 1                ; offset: $B8 (184)
  225. ;  The following fields only exist for QuickTime 3.0 and greater 
  226. syncFrameTime             ds.l    1                ; offset: $BA (186)        ;  banddecompress 
  227. needUpdateOnTimeChange     ds.b    1                ; offset: $BE (190)        ;  banddecompress 
  228. enableBlackLining         ds.b    1                ; offset: $BF (191)
  229. needUpdateOnSourceChange  ds.b    1                ; offset: $C0 (192)        ;  band decompress 
  230. pad                         ds.b    1                ; offset: $C1 (193)
  231. unused                     ds.l    1                ; offset: $C2 (194)
  232. finalDestinationPort     ds.l    1                ; offset: $C6 (198)
  233. requestedBufferWidth     ds.l    1                ; offset: $CA (202)        ;  must set codecWantsSpecialScaling to indicate this field is valid
  234. requestedBufferHeight     ds.l    1                ; offset: $CE (206)        ;  must set codecWantsSpecialScaling to indicate this field is valid
  235. sizeof                     EQU *                    ; size:   $D2 (210)
  236.                         ENDR
  237.  
  238. matrixFlagScale2x                EQU        $00000080
  239. matrixFlagScale1x                EQU        $00000040
  240. matrixFlagScaleHalf                EQU        $00000020
  241.  
  242. kScreenFloodMethodNone            EQU        0
  243. kScreenFloodMethodKeyColor        EQU        1
  244. kScreenFloodMethodAlpha            EQU        2
  245.  
  246. kFlushLastQueuedFrame            EQU        0
  247. kFlushFirstQueuedFrame            EQU        1
  248.  
  249. kNewImageGWorldErase            EQU        $00000001
  250. ImageSubCodecDecompressCapabilities RECORD 0
  251. recordSize                 ds.l    1                ; offset: $0 (0)        ;  sizeof(ImageSubCodecDecompressCapabilities)
  252. decompressRecordSize     ds.l    1                ; offset: $4 (4)        ;  size of your codec's decompress record
  253. canAsync                 ds.b    1                ; offset: $8 (8)        ;  default true
  254. pad                         ds.b    3                ; offset: $9 (9)
  255. sizeof                     EQU *                    ; size:   $C (12)
  256.                         ENDR
  257.  
  258. kCodecFrameTypeUnknown            EQU        0
  259. kCodecFrameTypeKey                EQU        1
  260. kCodecFrameTypeDifference        EQU        2
  261. kCodecFrameTypeDroppableDifference EQU    3
  262. ImageSubCodecDecompressRecord RECORD 0
  263. baseAddr                 ds.l    1                ; offset: $0 (0)
  264. rowBytes                 ds.l    1                ; offset: $4 (4)
  265. codecData                 ds.l    1                ; offset: $8 (8)
  266. progressProcRecord         ds        ICMProgressProcRecord ; offset: $C (12)
  267. dataProcRecord             ds        ICMDataProcRecord ; offset: $14 (20)
  268. userDecompressRecord     ds.l    1                ; offset: $1C (28)        ;  pointer to codec-specific per-band data
  269. frameType                 ds.b    1                ; offset: $20 (32)
  270. pad                         ds.b    3                ; offset: $21 (33)
  271. sizeof                     EQU *                    ; size:   $24 (36)
  272.                         ENDR
  273. ;  name of parameters or effect -- placed in root container, optional 
  274.  
  275. kParameterTitleName                EQU        'name'
  276. kParameterTitleID                EQU        1
  277. ;  name of parameters or effect -- placed in root container, required 
  278.  
  279. kParameterWhatName                EQU        'what'
  280. kParameterWhatID                EQU        1
  281. ;  is effect repeatable -- placed in root container, optional, default is TRUE
  282.  
  283. kParameterRepeatableName        EQU        'pete'
  284. kParameterRepeatableID            EQU        1
  285.  
  286. kParameterRepeatableTrue        EQU        1
  287. kParameterRepeatableFalse        EQU        0
  288. ;  substitution codec in case effect is missing -- placed in root container, recommended 
  289.  
  290. kParameterAlternateCodecName    EQU        'subs'
  291. kParameterAlternateCodecID        EQU        1
  292. ;  maximum number of sources -- placed in root container, required 
  293.  
  294. kParameterSourceCountName        EQU        'srcs'
  295. kParameterSourceCountID            EQU        1
  296.  
  297.  
  298. kParameterDependencyName        EQU        'deep'
  299. kParameterDependencyID            EQU        1
  300.  
  301. kParameterListDependsUponColorProfiles EQU 'prof'
  302. kParameterListDependsUponFonts    EQU        'font'
  303. ParameterDependancyRecord RECORD 0
  304. dependCount                 ds.l    1                ; offset: $0 (0)
  305. depends                     ds.l    1                ; offset: $4 (4) <-- really an array of length one
  306. sizeof                     EQU *                    ; size:   $8 (8)
  307.                         ENDR
  308.  
  309. ;   enumeration list in container -- placed in root container, optional unless used by a
  310. ;   parameter in the list
  311.  
  312.  
  313.  
  314. kParameterEnumList                EQU        'enum'
  315. EnumValuePair            RECORD 0
  316. value                     ds.l    1                ; offset: $0 (0)
  317. name                     ds        Str255            ; offset: $4 (4)
  318. sizeof                     EQU *                    ; size:   $104 (260)
  319.                         ENDR
  320. EnumListRecord            RECORD 0
  321. enumCount                 ds.l    1                ; offset: $0 (0)        ;  number of enumeration items to follow
  322. values                     ds        EnumValuePair    ; offset: $4 (4) <-- really an array of length one ;  values and names for them, packed 
  323. sizeof                     EQU *                    ; size:   $108 (264)
  324.                         ENDR
  325. ;  atom type of parameter
  326.  
  327. kParameterAtomTypeAndID            EQU        'type'
  328.  
  329. kNoAtom                            EQU        'none'                ; atom type for no data got/set
  330. kAtomNoFlags                    EQU        $00000000
  331. kAtomNotInterpolated            EQU        $00000001            ; atom can never be interpolated
  332. kAtomInterpolateIsOptional        EQU        $00000002            ; atom can be interpolated, but it is an advanced user operation
  333. ParameterAtomTypeAndID    RECORD 0
  334. atomType                 ds.l    1                ; offset: $0 (0)        ;  type of atom this data comes from/goes into
  335. atomID                     ds.l    1                ; offset: $4 (4)        ;  ID of atom this data comes from/goes into
  336. atomFlags                 ds.l    1                ; offset: $8 (8)        ;  options for this atom
  337. atomName                 ds        Str255            ; offset: $C (12)        ;  name of this value type
  338. sizeof                     EQU *                    ; size:   $10C (268)
  339.                         ENDR
  340. ;  data type of a parameter
  341.  
  342. kParameterDataType                EQU        'data'
  343.  
  344. kParameterTypeDataLong            EQU        2                    ; integer value
  345. kParameterTypeDataFixed            EQU        3                    ; fixed point value
  346. kParameterTypeDataRGBValue        EQU        8                    ; RGBColor data
  347. kParameterTypeDataDouble        EQU        11                    ; IEEE 64 bit floating point value
  348. kParameterTypeDataText            EQU        'text'                ; editable text item
  349. kParameterTypeDataEnum            EQU        'enum'                ; enumerated lookup value
  350. kParameterTypeDataBitField        EQU        'bool'                ; bit field value (something that holds boolean(s))
  351. kParameterTypeDataImage            EQU        'imag'                ; reference to an image via Picture data
  352. ParameterDataType        RECORD 0
  353. dataType                 ds.l    1                ; offset: $0 (0)        ;  type of data this item is stored as
  354. sizeof                     EQU *                    ; size:   $4 (4)
  355.                         ENDR
  356.  
  357. ;   alternate (optional) data type -- main data type always required.  
  358. ;   Must be modified or deleted when modifying main data type.
  359. ;   Main data type must be modified when alternate is modified.
  360.  
  361.  
  362.  
  363. kParameterAlternateDataType        EQU        'alt1'
  364. kParameterTypeDataColorValue    EQU        'cmlr'                ; CMColor data (supported on machines with ColorSync)
  365. kParameterTypeDataCubic            EQU        'cubi'                ; cubic bezier(s) (no built-in support)
  366. kParameterTypeDataNURB            EQU        'nurb'                ; nurb(s) (no built-in support)
  367. ParameterAlternateDataEntry RECORD 0
  368. dataType                 ds.l    1                ; offset: $0 (0)        ;  type of data this item is stored as
  369. alternateAtom             ds.l    1                ; offset: $4 (4)        ;  where to store
  370. sizeof                     EQU *                    ; size:   $8 (8)
  371.                         ENDR
  372. ParameterAlternateDataType RECORD 0
  373. numEntries                 ds.l    1                ; offset: $0 (0)
  374. entries                     ds        ParameterAlternateDataEntry ; offset: $4 (4) <-- really an array of length one
  375. sizeof                     EQU *                    ; size:   $C (12)
  376.                         ENDR
  377. ;  legal values for the parameter
  378.  
  379. kParameterDataRange                EQU        'rang'
  380.  
  381. kNoMinimumLongFixed                EQU        $7FFFFFFF            ; ignore minimum/maxiumum values
  382. kNoMaximumLongFixed                EQU        $80000000
  383. kNoScaleLongFixed                EQU        0                    ; don't perform any scaling of value
  384. kNoPrecision                    EQU        -1                    ; allow as many digits as format
  385. ;  'text'
  386. StringRangeRecord        RECORD 0
  387. maxChars                 ds.l    1                ; offset: $0 (0)        ;  maximum length of string
  388. maxLines                 ds.l    1                ; offset: $4 (4)        ;  number of editing lines to use (1 typical, 0 to default)
  389. sizeof                     EQU *                    ; size:   $8 (8)
  390.                         ENDR
  391. ;  'long'
  392. LongRangeRecord            RECORD 0
  393. minValue                 ds.l    1                ; offset: $0 (0)        ;  no less than this
  394. maxValue                 ds.l    1                ; offset: $4 (4)        ;  no more than this
  395. scaleValue                 ds.l    1                ; offset: $8 (8)        ;  muliply content by this going in, divide going out
  396. precisionDigits             ds.l    1                ; offset: $C (12)        ;  # digits of precision when editing via typing
  397. sizeof                     EQU *                    ; size:   $10 (16)
  398.                         ENDR
  399. ;  'enum'
  400. EnumRangeRecord            RECORD 0
  401. enumID                     ds.l    1                ; offset: $0 (0)        ;  'enum' list in root container to search within
  402. sizeof                     EQU *                    ; size:   $4 (4)
  403.                         ENDR
  404. ;  'fixd'
  405. FixedRangeRecord        RECORD 0
  406. minValue                 ds.l    1                ; offset: $0 (0)        ;  no less than this
  407. maxValue                 ds.l    1                ; offset: $4 (4)        ;  no more than this
  408. scaleValue                 ds.l    1                ; offset: $8 (8)        ;  muliply content by this going in, divide going out
  409. precisionDigits             ds.l    1                ; offset: $C (12)        ;  # digits of precision when editing via typing
  410. sizeof                     EQU *                    ; size:   $10 (16)
  411.                         ENDR
  412. ;  'doub'
  413. ;  'bool'    
  414. BooleanRangeRecord        RECORD 0
  415. maskValue                 ds.l    1                ; offset: $0 (0)        ;  value to mask on/off to set/clear the boolean
  416. sizeof                     EQU *                    ; size:   $4 (4)
  417.                         ENDR
  418. ;  'rgb '
  419. RGBRangeRecord            RECORD 0
  420. minColor                 ds        RGBColor        ; offset: $0 (0)
  421. maxColor                 ds        RGBColor        ; offset: $6 (6)
  422. sizeof                     EQU *                    ; size:   $C (12)
  423.                         ENDR
  424. ;  'imag'
  425.  
  426. kParameterImageNoFlags            EQU        0
  427. ImageRangeRecord        RECORD 0
  428. imageFlags                 ds.l    1                ; offset: $0 (0)
  429. sizeof                     EQU *                    ; size:   $4 (4)
  430.                         ENDR
  431. ;  union of all of the above
  432. ;  UI behavior of a parameter
  433.  
  434. kParameterDataBehavior            EQU        'ditl'
  435.  
  436.                                                             ; items edited via typing
  437. kParameterItemEditText            EQU        'edit'                ; edit text box
  438. kParameterItemEditLong            EQU        'long'                ; long number editing box
  439. kParameterItemEditFixed            EQU        'fixd'                ; fixed point number editing box
  440. kParameterItemEditDouble        EQU        'doub'                ; double number editing box
  441.                                                             ; items edited via control(s)
  442. kParameterItemPopUp                EQU        'popu'                ; pop up value for enum types
  443. kParameterItemRadioCluster        EQU        'radi'                ; radio cluster for enum types
  444. kParameterItemCheckBox            EQU        'chex'                ; check box for booleans
  445. kParameterItemControl            EQU        'cntl'                ; item controlled via a standard control of some type
  446.                                                             ; special user items
  447. kParameterItemLine                EQU        'line'                ; line
  448. kParameterItemColorPicker        EQU        'pick'                ; color swatch & picker
  449. kParameterItemGroupDivider        EQU        'divi'                ; start of a new group of items
  450. kParameterItemStaticText        EQU        'stat'                ; display "parameter name" as static text
  451. kParameterItemDragImage            EQU        'imag'                ; allow image display, along with drag and drop
  452.                                                             ; flags valid for lines and groups
  453. kGraphicsNoFlags                EQU        $00000000            ; no options for graphics
  454. kGraphicsFlagsGray                EQU        $00000001            ; draw lines with gray
  455.                                                             ; flags valid for groups
  456. kGroupNoFlags                    EQU        $00000000            ; no options for group -- may be combined with graphics options                        
  457. kGroupAlignText                    EQU        $00010000            ; edit text items in group have the same size
  458. kGroupSurroundBox                EQU        $00020000            ; group should be surrounded with a box
  459. kGroupMatrix                    EQU        $00040000            ; side-by-side arrangement of group is okay
  460. kGroupNoName                    EQU        $00080000            ; name of group should not be displayed above box
  461.                                                             ; flags valid for popup/radiocluster/checkbox/control
  462. kDisableControl                    EQU        $00000001
  463. kDisableWhenNotEqual            EQU        $00000001
  464. kDisableWhenEqual                EQU        $00000011
  465. kDisableWhenLessThan            EQU        $00000021
  466. kDisableWhenGreaterThan            EQU        $00000031            ; flags valid for popups
  467. kPopupStoreAsString                EQU        $00010000
  468. ControlBehaviors        RECORD 0
  469. groupID                     ds.l    1                ; offset: $0 (0)        ;  group under control of this item
  470. controlValue             ds.l    1                ; offset: $4 (4)        ;  control value for comparison purposes
  471. sizeof                     EQU *                    ; size:   $8 (8)
  472.                         ENDR
  473. ParameterDataBehavior    RECORD 0
  474. behaviorType             ds.l    1                ; offset: $0 (0)
  475. behaviorFlags             ds.l    1                ; offset: $4 (4)
  476. controls                 ds        ControlBehaviors ; offset: $8 (8)
  477. sizeof                     EQU *                    ; size:   $10 (16)
  478.                         ENDR
  479. ;  higher level purpose of a parameter or set of parameters
  480.  
  481. kParameterDataUsage                EQU        'use '
  482.  
  483. kParameterUsagePixels            EQU        'pixl'
  484. kParameterUsageRectangle        EQU        'rect'
  485. kParameterUsagePoint            EQU        'xy  '
  486. kParameterUsage3DPoint            EQU        'xyz '
  487. kParameterUsageDegrees            EQU        'degr'
  488. kParameterUsageRadians            EQU        'rads'
  489. kParameterUsagePercent            EQU        'pcnt'
  490. kParameterUsageSeconds            EQU        'secs'
  491. kParameterUsageMilliseconds        EQU        'msec'
  492. kParameterUsageMicroseconds        EQU        'µsec'
  493. kParameterUsage3by3Matrix        EQU        '3by3'
  494. ParameterDataUsage        RECORD 0
  495. usageType                 ds.l    1                ; offset: $0 (0)        ;  higher level purpose of the data or group
  496. sizeof                     EQU *                    ; size:   $4 (4)
  497.                         ENDR
  498. ;  default value(s) for a parameter
  499.  
  500. kParameterDataDefaultItem        EQU        'dflt'
  501. ;  atoms that help to fill in data within the info window 
  502.  
  503. kParameterInfoLongName            EQU        '©nam'
  504. kParameterInfoCopyright            EQU        '©cpy'
  505. kParameterInfoDescription        EQU        '©inf'
  506. kParameterInfoWindowTitle        EQU        '©wnt'
  507. kParameterInfoPicture            EQU        '©pix'
  508. kParameterInfoIDs                EQU        1
  509. ;  flags for ImageCodecValidateParameters 
  510.  
  511. kParameterValidationNoFlags        EQU        $00000000
  512. kParameterValidationFinalValidation EQU    $00000001
  513. ; typedef long                             QTParameterValidationOptions
  514.  
  515. ;  QTAtomTypes for atoms in image compressor settings containers
  516.  
  517. kImageCodecSettingsFieldCount    EQU        'fiel'                ; Number of fields (UInt8) 
  518. kImageCodecSettingsFieldOrdering EQU    'fdom'                ; Ordering of fields (UInt8)
  519. kImageCodecSettingsFieldOrderingF1F2 EQU 1
  520. kImageCodecSettingsFieldOrderingF2F1 EQU 2
  521. ;     codec selectors 0-127 are reserved by Apple 
  522. ;     codec selectors 128-191 are subtype specific 
  523. ;     codec selectors 192-255 are vendor specific 
  524. ;     codec selectors 256-32767 are available for general use 
  525. ;     negative selectors are reserved by the Component Manager 
  526. ;
  527. ; pascal ComponentResult ImageCodecGetCodecInfo(ComponentInstance ci, CodecInfo *info)
  528. ;
  529.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  530.         Macro
  531.         _ImageCodecGetCodecInfo
  532.             move.l              #$00040000,-(sp)
  533.             moveq               #0,D0
  534.             dc.w                $A82A
  535.         EndM
  536.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  537.         IMPORT_CFM_FUNCTION ImageCodecGetCodecInfo
  538.     ENDIF
  539.  
  540. ;
  541. ; pascal ComponentResult ImageCodecGetCompressionTime(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, short depth, CodecQ *spatialQuality, CodecQ *temporalQuality, unsigned long *time)
  542. ;
  543.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  544.         Macro
  545.         _ImageCodecGetCompressionTime
  546.             move.l              #$00160001,-(sp)
  547.             moveq               #0,D0
  548.             dc.w                $A82A
  549.         EndM
  550.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  551.         IMPORT_CFM_FUNCTION ImageCodecGetCompressionTime
  552.     ENDIF
  553.  
  554. ;
  555. ; pascal ComponentResult ImageCodecGetMaxCompressionSize(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, short depth, CodecQ quality, long *size)
  556. ;
  557.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  558.         Macro
  559.         _ImageCodecGetMaxCompressionSize
  560.             move.l              #$00120002,-(sp)
  561.             moveq               #0,D0
  562.             dc.w                $A82A
  563.         EndM
  564.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  565.         IMPORT_CFM_FUNCTION ImageCodecGetMaxCompressionSize
  566.     ENDIF
  567.  
  568. ;
  569. ; pascal ComponentResult ImageCodecPreCompress(ComponentInstance ci, CodecCompressParams *params)
  570. ;
  571.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  572.         Macro
  573.         _ImageCodecPreCompress
  574.             move.l              #$00040003,-(sp)
  575.             moveq               #0,D0
  576.             dc.w                $A82A
  577.         EndM
  578.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  579.         IMPORT_CFM_FUNCTION ImageCodecPreCompress
  580.     ENDIF
  581.  
  582. ;
  583. ; pascal ComponentResult ImageCodecBandCompress(ComponentInstance ci, CodecCompressParams *params)
  584. ;
  585.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  586.         Macro
  587.         _ImageCodecBandCompress
  588.             move.l              #$00040004,-(sp)
  589.             moveq               #0,D0
  590.             dc.w                $A82A
  591.         EndM
  592.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  593.         IMPORT_CFM_FUNCTION ImageCodecBandCompress
  594.     ENDIF
  595.  
  596. ;
  597. ; pascal ComponentResult ImageCodecPreDecompress(ComponentInstance ci, CodecDecompressParams *params)
  598. ;
  599.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  600.         Macro
  601.         _ImageCodecPreDecompress
  602.             move.l              #$00040005,-(sp)
  603.             moveq               #0,D0
  604.             dc.w                $A82A
  605.         EndM
  606.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  607.         IMPORT_CFM_FUNCTION ImageCodecPreDecompress
  608.     ENDIF
  609.  
  610. ;
  611. ; pascal ComponentResult ImageCodecBandDecompress(ComponentInstance ci, CodecDecompressParams *params)
  612. ;
  613.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  614.         Macro
  615.         _ImageCodecBandDecompress
  616.             move.l              #$00040006,-(sp)
  617.             moveq               #0,D0
  618.             dc.w                $A82A
  619.         EndM
  620.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  621.         IMPORT_CFM_FUNCTION ImageCodecBandDecompress
  622.     ENDIF
  623.  
  624. ;
  625. ; pascal ComponentResult ImageCodecBusy(ComponentInstance ci, ImageSequence seq)
  626. ;
  627.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  628.         Macro
  629.         _ImageCodecBusy
  630.             move.l              #$00040007,-(sp)
  631.             moveq               #0,D0
  632.             dc.w                $A82A
  633.         EndM
  634.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  635.         IMPORT_CFM_FUNCTION ImageCodecBusy
  636.     ENDIF
  637.  
  638. ;
  639. ; pascal ComponentResult ImageCodecGetCompressedImageSize(ComponentInstance ci, ImageDescriptionHandle desc, Ptr data, long bufferSize, ICMDataProcRecordPtr dataProc, long *dataSize)
  640. ;
  641.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  642.         Macro
  643.         _ImageCodecGetCompressedImageSize
  644.             move.l              #$00140008,-(sp)
  645.             moveq               #0,D0
  646.             dc.w                $A82A
  647.         EndM
  648.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  649.         IMPORT_CFM_FUNCTION ImageCodecGetCompressedImageSize
  650.     ENDIF
  651.  
  652. ;
  653. ; pascal ComponentResult ImageCodecGetSimilarity(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, ImageDescriptionHandle desc, Ptr data, Fixed *similarity)
  654. ;
  655.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  656.         Macro
  657.         _ImageCodecGetSimilarity
  658.             move.l              #$00140009,-(sp)
  659.             moveq               #0,D0
  660.             dc.w                $A82A
  661.         EndM
  662.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  663.         IMPORT_CFM_FUNCTION ImageCodecGetSimilarity
  664.     ENDIF
  665.  
  666. ;
  667. ; pascal ComponentResult ImageCodecTrimImage(ComponentInstance ci, ImageDescriptionHandle Desc, Ptr inData, long inBufferSize, ICMDataProcRecordPtr dataProc, Ptr outData, long outBufferSize, ICMFlushProcRecordPtr flushProc, Rect *trimRect, ICMProgressProcRecordPtr progressProc)
  668. ;
  669.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  670.         Macro
  671.         _ImageCodecTrimImage
  672.             move.l              #$0024000A,-(sp)
  673.             moveq               #0,D0
  674.             dc.w                $A82A
  675.         EndM
  676.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  677.         IMPORT_CFM_FUNCTION ImageCodecTrimImage
  678.     ENDIF
  679.  
  680. ;
  681. ; pascal ComponentResult ImageCodecRequestSettings(ComponentInstance ci, Handle settings, Rect *rp, ModalFilterUPP filterProc)
  682. ;
  683.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  684.         Macro
  685.         _ImageCodecRequestSettings
  686.             move.l              #$000C000B,-(sp)
  687.             moveq               #0,D0
  688.             dc.w                $A82A
  689.         EndM
  690.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  691.         IMPORT_CFM_FUNCTION ImageCodecRequestSettings
  692.     ENDIF
  693.  
  694. ;
  695. ; pascal ComponentResult ImageCodecGetSettings(ComponentInstance ci, Handle settings)
  696. ;
  697.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  698.         Macro
  699.         _ImageCodecGetSettings
  700.             move.l              #$0004000C,-(sp)
  701.             moveq               #0,D0
  702.             dc.w                $A82A
  703.         EndM
  704.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  705.         IMPORT_CFM_FUNCTION ImageCodecGetSettings
  706.     ENDIF
  707.  
  708. ;
  709. ; pascal ComponentResult ImageCodecSetSettings(ComponentInstance ci, Handle settings)
  710. ;
  711.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  712.         Macro
  713.         _ImageCodecSetSettings
  714.             move.l              #$0004000D,-(sp)
  715.             moveq               #0,D0
  716.             dc.w                $A82A
  717.         EndM
  718.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  719.         IMPORT_CFM_FUNCTION ImageCodecSetSettings
  720.     ENDIF
  721.  
  722. ;
  723. ; pascal ComponentResult ImageCodecFlush(ComponentInstance ci)
  724. ;
  725.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  726.         Macro
  727.         _ImageCodecFlush
  728.             move.l              #$0000000E,-(sp)
  729.             moveq               #0,D0
  730.             dc.w                $A82A
  731.         EndM
  732.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  733.         IMPORT_CFM_FUNCTION ImageCodecFlush
  734.     ENDIF
  735.  
  736. ;
  737. ; pascal ComponentResult ImageCodecSetTimeCode(ComponentInstance ci, void *timeCodeFormat, void *timeCodeTime)
  738. ;
  739.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  740.         Macro
  741.         _ImageCodecSetTimeCode
  742.             move.l              #$0008000F,-(sp)
  743.             moveq               #0,D0
  744.             dc.w                $A82A
  745.         EndM
  746.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  747.         IMPORT_CFM_FUNCTION ImageCodecSetTimeCode
  748.     ENDIF
  749.  
  750. ;
  751. ; pascal ComponentResult ImageCodecIsImageDescriptionEquivalent(ComponentInstance ci, ImageDescriptionHandle newDesc, Boolean *equivalent)
  752. ;
  753.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  754.         Macro
  755.         _ImageCodecIsImageDescriptionEquivalent
  756.             move.l              #$00080010,-(sp)
  757.             moveq               #0,D0
  758.             dc.w                $A82A
  759.         EndM
  760.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  761.         IMPORT_CFM_FUNCTION ImageCodecIsImageDescriptionEquivalent
  762.     ENDIF
  763.  
  764. ;
  765. ; pascal ComponentResult ImageCodecNewMemory(ComponentInstance ci, Ptr *data, Size dataSize, long dataUse, ICMMemoryDisposedUPP memoryGoneProc, void *refCon)
  766. ;
  767.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  768.         Macro
  769.         _ImageCodecNewMemory
  770.             move.l              #$00140011,-(sp)
  771.             moveq               #0,D0
  772.             dc.w                $A82A
  773.         EndM
  774.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  775.         IMPORT_CFM_FUNCTION ImageCodecNewMemory
  776.     ENDIF
  777.  
  778. ;
  779. ; pascal ComponentResult ImageCodecDisposeMemory(ComponentInstance ci, Ptr data)
  780. ;
  781.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  782.         Macro
  783.         _ImageCodecDisposeMemory
  784.             move.l              #$00040012,-(sp)
  785.             moveq               #0,D0
  786.             dc.w                $A82A
  787.         EndM
  788.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  789.         IMPORT_CFM_FUNCTION ImageCodecDisposeMemory
  790.     ENDIF
  791.  
  792. ;
  793. ; pascal ComponentResult ImageCodecHitTestData(ComponentInstance ci, ImageDescriptionHandle desc, void *data, Size dataSize, Point where, Boolean *hit)
  794. ;
  795.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  796.         Macro
  797.         _ImageCodecHitTestData
  798.             move.l              #$00140013,-(sp)
  799.             moveq               #0,D0
  800.             dc.w                $A82A
  801.         EndM
  802.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  803.         IMPORT_CFM_FUNCTION ImageCodecHitTestData
  804.     ENDIF
  805.  
  806. ;
  807. ; pascal ComponentResult ImageCodecNewImageBufferMemory(ComponentInstance ci, CodecDecompressParams *params, long flags, ICMMemoryDisposedUPP memoryGoneProc, void *refCon)
  808. ;
  809.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  810.         Macro
  811.         _ImageCodecNewImageBufferMemory
  812.             move.l              #$00100014,-(sp)
  813.             moveq               #0,D0
  814.             dc.w                $A82A
  815.         EndM
  816.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  817.         IMPORT_CFM_FUNCTION ImageCodecNewImageBufferMemory
  818.     ENDIF
  819.  
  820. ;
  821. ; pascal ComponentResult ImageCodecExtractAndCombineFields(ComponentInstance ci, long fieldFlags, void *data1, long dataSize1, ImageDescriptionHandle desc1, void *data2, long dataSize2, ImageDescriptionHandle desc2, void *outputData, long *outDataSize, ImageDescriptionHandle descOut)
  822. ;
  823.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  824.         Macro
  825.         _ImageCodecExtractAndCombineFields
  826.             move.l              #$00280015,-(sp)
  827.             moveq               #0,D0
  828.             dc.w                $A82A
  829.         EndM
  830.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  831.         IMPORT_CFM_FUNCTION ImageCodecExtractAndCombineFields
  832.     ENDIF
  833.  
  834. ;
  835. ; pascal ComponentResult ImageCodecGetMaxCompressionSizeWithSources(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, short depth, CodecQ quality, CDSequenceDataSourcePtr sourceData, long *size)
  836. ;
  837.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  838.         Macro
  839.         _ImageCodecGetMaxCompressionSizeWithSources
  840.             move.l              #$00160016,-(sp)
  841.             moveq               #0,D0
  842.             dc.w                $A82A
  843.         EndM
  844.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  845.         IMPORT_CFM_FUNCTION ImageCodecGetMaxCompressionSizeWithSources
  846.     ENDIF
  847.  
  848. ;
  849. ; pascal ComponentResult ImageCodecSetTimeBase(ComponentInstance ci, void *base)
  850. ;
  851.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  852.         Macro
  853.         _ImageCodecSetTimeBase
  854.             move.l              #$00040017,-(sp)
  855.             moveq               #0,D0
  856.             dc.w                $A82A
  857.         EndM
  858.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  859.         IMPORT_CFM_FUNCTION ImageCodecSetTimeBase
  860.     ENDIF
  861.  
  862. ;
  863. ; pascal ComponentResult ImageCodecSourceChanged(ComponentInstance ci, UInt32 majorSourceChangeSeed, UInt32 minorSourceChangeSeed, CDSequenceDataSourcePtr sourceData, long *flagsOut)
  864. ;
  865.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  866.         Macro
  867.         _ImageCodecSourceChanged
  868.             move.l              #$00100018,-(sp)
  869.             moveq               #0,D0
  870.             dc.w                $A82A
  871.         EndM
  872.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  873.         IMPORT_CFM_FUNCTION ImageCodecSourceChanged
  874.     ENDIF
  875.  
  876. ;
  877. ; pascal ComponentResult ImageCodecFlushFrame(ComponentInstance ci, UInt32 flags)
  878. ;
  879.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  880.         Macro
  881.         _ImageCodecFlushFrame
  882.             move.l              #$00040019,-(sp)
  883.             moveq               #0,D0
  884.             dc.w                $A82A
  885.         EndM
  886.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  887.         IMPORT_CFM_FUNCTION ImageCodecFlushFrame
  888.     ENDIF
  889.  
  890. ;
  891. ; pascal ComponentResult ImageCodecGetSettingsAsText(ComponentInstance ci, Handle *text)
  892. ;
  893.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  894.         Macro
  895.         _ImageCodecGetSettingsAsText
  896.             move.l              #$0004001A,-(sp)
  897.             moveq               #0,D0
  898.             dc.w                $A82A
  899.         EndM
  900.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  901.         IMPORT_CFM_FUNCTION ImageCodecGetSettingsAsText
  902.     ENDIF
  903.  
  904. ;
  905. ; pascal ComponentResult ImageCodecGetParameterListHandle(ComponentInstance ci, Handle *parameterDescriptionHandle)
  906. ;
  907.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  908.         Macro
  909.         _ImageCodecGetParameterListHandle
  910.             move.l              #$0004001B,-(sp)
  911.             moveq               #0,D0
  912.             dc.w                $A82A
  913.         EndM
  914.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  915.         IMPORT_CFM_FUNCTION ImageCodecGetParameterListHandle
  916.     ENDIF
  917.  
  918. ;
  919. ; pascal ComponentResult ImageCodecGetParameterList(ComponentInstance ci, QTAtomContainer *parameterDescription)
  920. ;
  921.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  922.         Macro
  923.         _ImageCodecGetParameterList
  924.             move.l              #$0004001C,-(sp)
  925.             moveq               #0,D0
  926.             dc.w                $A82A
  927.         EndM
  928.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  929.         IMPORT_CFM_FUNCTION ImageCodecGetParameterList
  930.     ENDIF
  931.  
  932. ;
  933. ; pascal ComponentResult ImageCodecCreateStandardParameterDialog(ComponentInstance ci, QTAtomContainer parameterDescription, QTAtomContainer parameters, QTParameterDialogOptions dialogOptions, DialogPtr existingDialog, short existingUserItem, QTParameterDialog *createdDialog)
  934. ;
  935.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  936.         Macro
  937.         _ImageCodecCreateStandardParameterDialog
  938.             move.l              #$0016001D,-(sp)
  939.             moveq               #0,D0
  940.             dc.w                $A82A
  941.         EndM
  942.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  943.         IMPORT_CFM_FUNCTION ImageCodecCreateStandardParameterDialog
  944.     ENDIF
  945.  
  946. ;
  947. ; pascal ComponentResult ImageCodecIsStandardParameterDialogEvent(ComponentInstance ci, EventRecord *pEvent, QTParameterDialog createdDialog)
  948. ;
  949.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  950.         Macro
  951.         _ImageCodecIsStandardParameterDialogEvent
  952.             move.l              #$0008001E,-(sp)
  953.             moveq               #0,D0
  954.             dc.w                $A82A
  955.         EndM
  956.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  957.         IMPORT_CFM_FUNCTION ImageCodecIsStandardParameterDialogEvent
  958.     ENDIF
  959.  
  960. ;
  961. ; pascal ComponentResult ImageCodecDismissStandardParameterDialog(ComponentInstance ci, QTParameterDialog createdDialog)
  962. ;
  963.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  964.         Macro
  965.         _ImageCodecDismissStandardParameterDialog
  966.             move.l              #$0004001F,-(sp)
  967.             moveq               #0,D0
  968.             dc.w                $A82A
  969.         EndM
  970.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  971.         IMPORT_CFM_FUNCTION ImageCodecDismissStandardParameterDialog
  972.     ENDIF
  973.  
  974. ;
  975. ; pascal ComponentResult ImageCodecStandardParameterDialogDoAction(ComponentInstance ci, QTParameterDialog createdDialog, long action, void *params)
  976. ;
  977.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  978.         Macro
  979.         _ImageCodecStandardParameterDialogDoAction
  980.             move.l              #$000C0020,-(sp)
  981.             moveq               #0,D0
  982.             dc.w                $A82A
  983.         EndM
  984.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  985.         IMPORT_CFM_FUNCTION ImageCodecStandardParameterDialogDoAction
  986.     ENDIF
  987.  
  988. ;
  989. ; pascal ComponentResult ImageCodecNewImageGWorld(ComponentInstance ci, CodecDecompressParams *params, GWorldPtr *newGW, long flags)
  990. ;
  991.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  992.         Macro
  993.         _ImageCodecNewImageGWorld
  994.             move.l              #$000C0021,-(sp)
  995.             moveq               #0,D0
  996.             dc.w                $A82A
  997.         EndM
  998.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  999.         IMPORT_CFM_FUNCTION ImageCodecNewImageGWorld
  1000.     ENDIF
  1001.  
  1002. ;
  1003. ; pascal ComponentResult ImageCodecDisposeImageGWorld(ComponentInstance ci, GWorldPtr theGW)
  1004. ;
  1005.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1006.         Macro
  1007.         _ImageCodecDisposeImageGWorld
  1008.             move.l              #$00040022,-(sp)
  1009.             moveq               #0,D0
  1010.             dc.w                $A82A
  1011.         EndM
  1012.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1013.         IMPORT_CFM_FUNCTION ImageCodecDisposeImageGWorld
  1014.     ENDIF
  1015.  
  1016. ;
  1017. ; pascal ComponentResult ImageCodecHitTestDataWithFlags(ComponentInstance ci, ImageDescriptionHandle desc, void *data, Size dataSize, Point where, long *hit, long hitFlags)
  1018. ;
  1019.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1020.         Macro
  1021.         _ImageCodecHitTestDataWithFlags
  1022.             move.l              #$00180023,-(sp)
  1023.             moveq               #0,D0
  1024.             dc.w                $A82A
  1025.         EndM
  1026.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1027.         IMPORT_CFM_FUNCTION ImageCodecHitTestDataWithFlags
  1028.     ENDIF
  1029.  
  1030. ;
  1031. ; pascal ComponentResult ImageCodecValidateParameters(ComponentInstance ci, QTAtomContainer parameters, QTParameterValidationOptions validationFlags, StringPtr errorString)
  1032. ;
  1033.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1034.         Macro
  1035.         _ImageCodecValidateParameters
  1036.             move.l              #$000C0024,-(sp)
  1037.             moveq               #0,D0
  1038.             dc.w                $A82A
  1039.         EndM
  1040.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1041.         IMPORT_CFM_FUNCTION ImageCodecValidateParameters
  1042.     ENDIF
  1043.  
  1044. ;
  1045. ; pascal ComponentResult ImageCodecGetBaseMPWorkFunction(ComponentInstance ci, ComponentMPWorkFunctionUPP *workFunction, void **refCon, ImageCodecMPDrawBandUPP drawProc, void *drawProcRefCon)
  1046. ;
  1047.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1048.         Macro
  1049.         _ImageCodecGetBaseMPWorkFunction
  1050.             move.l              #$00100025,-(sp)
  1051.             moveq               #0,D0
  1052.             dc.w                $A82A
  1053.         EndM
  1054.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1055.         IMPORT_CFM_FUNCTION ImageCodecGetBaseMPWorkFunction
  1056.     ENDIF
  1057.  
  1058. ;
  1059. ; pascal ComponentResult ImageCodecPreflight(ComponentInstance ci, CodecDecompressParams *params)
  1060. ;
  1061.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1062.         Macro
  1063.         _ImageCodecPreflight
  1064.             move.l              #$00040200,-(sp)
  1065.             moveq               #0,D0
  1066.             dc.w                $A82A
  1067.         EndM
  1068.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1069.         IMPORT_CFM_FUNCTION ImageCodecPreflight
  1070.     ENDIF
  1071.  
  1072. ;
  1073. ; pascal ComponentResult ImageCodecInitialize(ComponentInstance ci, ImageSubCodecDecompressCapabilities *cap)
  1074. ;
  1075.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1076.         Macro
  1077.         _ImageCodecInitialize
  1078.             move.l              #$00040201,-(sp)
  1079.             moveq               #0,D0
  1080.             dc.w                $A82A
  1081.         EndM
  1082.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1083.         IMPORT_CFM_FUNCTION ImageCodecInitialize
  1084.     ENDIF
  1085.  
  1086. ;
  1087. ; pascal ComponentResult ImageCodecBeginBand(ComponentInstance ci, CodecDecompressParams *params, ImageSubCodecDecompressRecord *drp, long flags)
  1088. ;
  1089.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1090.         Macro
  1091.         _ImageCodecBeginBand
  1092.             move.l              #$000C0202,-(sp)
  1093.             moveq               #0,D0
  1094.             dc.w                $A82A
  1095.         EndM
  1096.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1097.         IMPORT_CFM_FUNCTION ImageCodecBeginBand
  1098.     ENDIF
  1099.  
  1100. ;
  1101. ; pascal ComponentResult ImageCodecDrawBand(ComponentInstance ci, ImageSubCodecDecompressRecord *drp)
  1102. ;
  1103.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1104.         Macro
  1105.         _ImageCodecDrawBand
  1106.             move.l              #$00040203,-(sp)
  1107.             moveq               #0,D0
  1108.             dc.w                $A82A
  1109.         EndM
  1110.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1111.         IMPORT_CFM_FUNCTION ImageCodecDrawBand
  1112.     ENDIF
  1113.  
  1114. ;
  1115. ; pascal ComponentResult ImageCodecEndBand(ComponentInstance ci, ImageSubCodecDecompressRecord *drp, OSErr result, long flags)
  1116. ;
  1117.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1118.         Macro
  1119.         _ImageCodecEndBand
  1120.             move.l              #$000A0204,-(sp)
  1121.             moveq               #0,D0
  1122.             dc.w                $A82A
  1123.         EndM
  1124.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1125.         IMPORT_CFM_FUNCTION ImageCodecEndBand
  1126.     ENDIF
  1127.  
  1128. ;
  1129. ; pascal ComponentResult ImageCodecQueueStarting(ComponentInstance ci)
  1130. ;
  1131.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1132.         Macro
  1133.         _ImageCodecQueueStarting
  1134.             move.l              #$00000205,-(sp)
  1135.             moveq               #0,D0
  1136.             dc.w                $A82A
  1137.         EndM
  1138.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1139.         IMPORT_CFM_FUNCTION ImageCodecQueueStarting
  1140.     ENDIF
  1141.  
  1142. ;
  1143. ; pascal ComponentResult ImageCodecQueueStopping(ComponentInstance ci)
  1144. ;
  1145.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1146.         Macro
  1147.         _ImageCodecQueueStopping
  1148.             move.l              #$00000206,-(sp)
  1149.             moveq               #0,D0
  1150.             dc.w                $A82A
  1151.         EndM
  1152.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1153.         IMPORT_CFM_FUNCTION ImageCodecQueueStopping
  1154.     ENDIF
  1155.  
  1156. ;
  1157. ; pascal ComponentResult ImageCodecDroppingFrame(ComponentInstance ci, const ImageSubCodecDecompressRecord *drp)
  1158. ;
  1159.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1160.         Macro
  1161.         _ImageCodecDroppingFrame
  1162.             move.l              #$00040207,-(sp)
  1163.             moveq               #0,D0
  1164.             dc.w                $A82A
  1165.         EndM
  1166.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1167.         IMPORT_CFM_FUNCTION ImageCodecDroppingFrame
  1168.     ENDIF
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182. kMotionJPEGTag                    EQU        'mjpg'
  1183. kJPEGQuantizationTablesImageDescriptionExtension EQU 'mjqt'
  1184. kJPEGHuffmanTablesImageDescriptionExtension EQU 'mjht'
  1185. kFieldInfoImageDescriptionExtension EQU    'fiel'                ; image description extension describing the field count and field orderings
  1186.  
  1187. kFieldOrderUnknown                EQU        0
  1188. kFieldsStoredF1F2DisplayedF1F2    EQU        1
  1189. kFieldsStoredF1F2DisplayedF2F1    EQU        2
  1190. kFieldsStoredF2F1DisplayedF1F2    EQU        5
  1191. kFieldsStoredF2F1DisplayedF2F1    EQU        6
  1192. MotionJPEGApp1Marker    RECORD 0
  1193. unused                     ds.l    1                ; offset: $0 (0)
  1194. tag                         ds.l    1                ; offset: $4 (4)
  1195. fieldSize                 ds.l    1                ; offset: $8 (8)
  1196. paddedFieldSize             ds.l    1                ; offset: $C (12)
  1197. offsetToNextField         ds.l    1                ; offset: $10 (16)
  1198. qTableOffset             ds.l    1                ; offset: $14 (20)
  1199. huffmanTableOffset         ds.l    1                ; offset: $18 (24)
  1200. sofOffset                 ds.l    1                ; offset: $1C (28)
  1201. sosOffset                 ds.l    1                ; offset: $20 (32)
  1202. soiOffset                 ds.l    1                ; offset: $24 (36)
  1203. sizeof                     EQU *                    ; size:   $28 (40)
  1204.                         ENDR
  1205. FieldInfoImageDescriptionExtension RECORD 0
  1206. fieldCount                 ds.b    1                ; offset: $0 (0)
  1207. fieldOrderings             ds.b    1                ; offset: $1 (1)
  1208. sizeof                     EQU *                    ; size:   $2 (2)
  1209.                         ENDR
  1210.  
  1211. ;
  1212. ; pascal ComponentResult QTPhotoSetSampling(ComponentInstance codec, short yH, short yV, short cbH, short cbV, short crH, short crV)
  1213. ;
  1214.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1215.         Macro
  1216.         _QTPhotoSetSampling
  1217.             move.l              #$000C0100,-(sp)
  1218.             moveq               #0,D0
  1219.             dc.w                $A82A
  1220.         EndM
  1221.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1222.         IMPORT_CFM_FUNCTION QTPhotoSetSampling
  1223.     ENDIF
  1224.  
  1225. ;
  1226. ; pascal ComponentResult QTPhotoSetRestartInterval(ComponentInstance codec, unsigned short restartInterval)
  1227. ;
  1228.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1229.         Macro
  1230.         _QTPhotoSetRestartInterval
  1231.             move.l              #$00020101,-(sp)
  1232.             moveq               #0,D0
  1233.             dc.w                $A82A
  1234.         EndM
  1235.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1236.         IMPORT_CFM_FUNCTION QTPhotoSetRestartInterval
  1237.     ENDIF
  1238.  
  1239. ;
  1240. ; pascal ComponentResult QTPhotoDefineHuffmanTable(ComponentInstance codec, short componentNumber, Boolean isDC, unsigned char *lengthCounts, unsigned char *values)
  1241. ;
  1242.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1243.         Macro
  1244.         _QTPhotoDefineHuffmanTable
  1245.             move.l              #$000C0102,-(sp)
  1246.             moveq               #0,D0
  1247.             dc.w                $A82A
  1248.         EndM
  1249.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1250.         IMPORT_CFM_FUNCTION QTPhotoDefineHuffmanTable
  1251.     ENDIF
  1252.  
  1253. ;
  1254. ; pascal ComponentResult QTPhotoDefineQuantizationTable(ComponentInstance codec, short componentNumber, unsigned char *table)
  1255. ;
  1256.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1257.         Macro
  1258.         _QTPhotoDefineQuantizationTable
  1259.             move.l              #$00060103,-(sp)
  1260.             moveq               #0,D0
  1261.             dc.w                $A82A
  1262.         EndM
  1263.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1264.         IMPORT_CFM_FUNCTION QTPhotoDefineQuantizationTable
  1265.     ENDIF
  1266.  
  1267.  
  1268.  
  1269.  
  1270.  
  1271. ;  source identifier -- placed in root container of description, one or more required 
  1272.  
  1273. kEffectSourceName                EQU        'src '
  1274.  
  1275. ;  source type -- placed in the input map to identify the source kind 
  1276.  
  1277. kEffectDataSourceType            EQU        'dtst'
  1278. ;   default effect types 
  1279.  
  1280. kEffectRawSource                EQU        0                    ; the source is raw image data
  1281. kEffectGenericType                EQU        'geff'                ; generic effect for combining others
  1282.  
  1283.  
  1284. ; typedef EffectSource *                EffectSourcePtr
  1285.  
  1286. SourceData                RECORD 0
  1287. image                     ds.l    1                ; offset: $0 (0)
  1288.                          ORG 0
  1289. effect                     ds.l    1                ; offset: $0 (0)
  1290. sizeof                     EQU *                    ; size:   $4 (4)
  1291.                         ENDR
  1292.  
  1293. EffectSource            RECORD 0
  1294. effectType                 ds.l    1                ; offset: $0 (0)        ;  type of effect or kEffectRawSource if raw ICM data
  1295. data                     ds.l    1                ; offset: $4 (4)        ;  track data for this effect
  1296. source                     ds        SourceData        ; offset: $8 (8)        ;  source/effect pointers
  1297. next                     ds.l    1                ; offset: $C (12)        ;  the next source for the parent effect
  1298. sizeof                     EQU *                    ; size:   $10 (16)
  1299.                         ENDR
  1300. EffectsFrameParams        RECORD 0
  1301. frameTime                 ds        ICMFrameTimeRecord ; offset: $0 (0)        ;  timing data
  1302. effectDuration             ds.l    1                ; offset: $30 (48)        ;  the duration of a single effect frame
  1303. doAsync                     ds.b    1                ; offset: $34 (52)        ;  set to true if the effect can go async
  1304. pad                         ds.b    3                ; offset: $35 (53)
  1305. source                     ds.l    1                ; offset: $38 (56)        ;  ptr to the source input tree
  1306. refCon                     ds.l    1                ; offset: $3C (60)        ;  storage for the effect
  1307. sizeof                     EQU *                    ; size:   $40 (64)
  1308.                         ENDR
  1309. ; typedef struct EffectsFrameParams *    EffectsFrameParamsPtr
  1310.  
  1311.  
  1312.  
  1313. ;
  1314. ; pascal ComponentResult ImageCodecEffectSetup(ComponentInstance effect, CodecDecompressParams *p)
  1315. ;
  1316.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1317.         Macro
  1318.         _ImageCodecEffectSetup
  1319.             move.l              #$00040300,-(sp)
  1320.             moveq               #0,D0
  1321.             dc.w                $A82A
  1322.         EndM
  1323.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1324.         IMPORT_CFM_FUNCTION ImageCodecEffectSetup
  1325.     ENDIF
  1326.  
  1327. ;
  1328. ; pascal ComponentResult ImageCodecEffectBegin(ComponentInstance effect, CodecDecompressParams *p, EffectsFrameParamsPtr ePtr)
  1329. ;
  1330.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1331.         Macro
  1332.         _ImageCodecEffectBegin
  1333.             move.l              #$00080301,-(sp)
  1334.             moveq               #0,D0
  1335.             dc.w                $A82A
  1336.         EndM
  1337.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1338.         IMPORT_CFM_FUNCTION ImageCodecEffectBegin
  1339.     ENDIF
  1340.  
  1341. ;
  1342. ; pascal ComponentResult ImageCodecEffectRenderFrame(ComponentInstance effect, EffectsFrameParamsPtr p)
  1343. ;
  1344.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1345.         Macro
  1346.         _ImageCodecEffectRenderFrame
  1347.             move.l              #$00040302,-(sp)
  1348.             moveq               #0,D0
  1349.             dc.w                $A82A
  1350.         EndM
  1351.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1352.         IMPORT_CFM_FUNCTION ImageCodecEffectRenderFrame
  1353.     ENDIF
  1354.  
  1355. ;
  1356. ; pascal ComponentResult ImageCodecEffectConvertEffectSourceToFormat(ComponentInstance effect, EffectSourcePtr sourceToConvert, ImageDescriptionHandle requestedDesc)
  1357. ;
  1358.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1359.         Macro
  1360.         _ImageCodecEffectConvertEffectSourceToFormat
  1361.             move.l              #$00080303,-(sp)
  1362.             moveq               #0,D0
  1363.             dc.w                $A82A
  1364.         EndM
  1365.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1366.         IMPORT_CFM_FUNCTION ImageCodecEffectConvertEffectSourceToFormat
  1367.     ENDIF
  1368.  
  1369. ;
  1370. ; pascal ComponentResult ImageCodecEffectCancel(ComponentInstance effect, EffectsFrameParamsPtr p)
  1371. ;
  1372.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1373.         Macro
  1374.         _ImageCodecEffectCancel
  1375.             move.l              #$00040304,-(sp)
  1376.             moveq               #0,D0
  1377.             dc.w                $A82A
  1378.         EndM
  1379.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1380.         IMPORT_CFM_FUNCTION ImageCodecEffectCancel
  1381.     ENDIF
  1382.  
  1383. ;
  1384. ; pascal ComponentResult ImageCodecEffectGetSpeed(ComponentInstance effect, QTAtomContainer parameters, Fixed *pFPS)
  1385. ;
  1386.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1387.         Macro
  1388.         _ImageCodecEffectGetSpeed
  1389.             move.l              #$00080305,-(sp)
  1390.             moveq               #0,D0
  1391.             dc.w                $A82A
  1392.         EndM
  1393.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1394.         IMPORT_CFM_FUNCTION ImageCodecEffectGetSpeed
  1395.     ENDIF
  1396.  
  1397.  
  1398.  
  1399.  
  1400. ;  curve atom types and data structures 
  1401.  
  1402. kCurvePathAtom                    EQU        'path'
  1403. kCurveEndAtom                    EQU        'zero'
  1404. kCurveAntialiasControlAtom        EQU        'anti'
  1405. kCurveAntialiasOff                EQU        0
  1406. kCurveAntialiasOn                EQU        $FFFFFFFF
  1407. kCurveFillTypeAtom                EQU        'fill'
  1408. kCurvePenThicknessAtom            EQU        'pent'
  1409. kCurveMiterLimitAtom            EQU        'mitr'
  1410. kCurveJoinAttributesAtom        EQU        'join'
  1411. kCurveMinimumDepthAtom            EQU        'mind'
  1412. kCurveDepthAlwaysOffscreenMask    EQU        $80000000
  1413. kCurveTransferModeAtom            EQU        'xfer'
  1414. kCurveGradientAngleAtom            EQU        'angl'
  1415. kCurveGradientRadiusAtom        EQU        'radi'
  1416. kCurveGradientOffsetAtom        EQU        'cent'
  1417.  
  1418. kCurveARGBColorAtom                EQU        'argb'
  1419. ARGBColor                RECORD 0
  1420. alpha                     ds.w    1                ; offset: $0 (0)
  1421. red                         ds.w    1                ; offset: $2 (2)
  1422. green                     ds.w    1                ; offset: $4 (4)
  1423. blue                     ds.w    1                ; offset: $6 (6)
  1424. sizeof                     EQU *                    ; size:   $8 (8)
  1425.                         ENDR
  1426.  
  1427. kCurveGradientRecordAtom        EQU        'grad'
  1428. GradientColorRecord        RECORD 0
  1429. thisColor                 ds        ARGBColor        ; offset: $0 (0)
  1430. endingPercentage         ds.l    1                ; offset: $8 (8)
  1431. sizeof                     EQU *                    ; size:   $C (12)
  1432.                         ENDR
  1433. ; typedef struct GradientColorRecord *    GradientColorPtr
  1434.  
  1435.  
  1436. kCurveGradientTypeAtom            EQU        'grdt'
  1437. ;  currently supported gradient types 
  1438.  
  1439. kLinearGradient                    EQU        0
  1440. kCircularGradient                EQU        1
  1441. ; typedef long                             GradientType
  1442.  
  1443. ;
  1444. ; pascal ComponentResult CurveGetLength(ComponentInstance effect, gxPaths *target, long index, wide *wideLength)
  1445. ;
  1446.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1447.         Macro
  1448.         _CurveGetLength
  1449.             move.l              #$000C0100,-(sp)
  1450.             moveq               #0,D0
  1451.             dc.w                $A82A
  1452.         EndM
  1453.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1454.         IMPORT_CFM_FUNCTION CurveGetLength
  1455.     ENDIF
  1456.  
  1457. ;
  1458. ; pascal ComponentResult CurveLengthToPoint(ComponentInstance effect, gxPaths *target, long index, Fixed length, FixedPoint *location, FixedPoint *tangent)
  1459. ;
  1460.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1461.         Macro
  1462.         _CurveLengthToPoint
  1463.             move.l              #$00140101,-(sp)
  1464.             moveq               #0,D0
  1465.             dc.w                $A82A
  1466.         EndM
  1467.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1468.         IMPORT_CFM_FUNCTION CurveLengthToPoint
  1469.     ENDIF
  1470.  
  1471. ;
  1472. ; pascal ComponentResult CurveNewPath(ComponentInstance effect, Handle *pPath)
  1473. ;
  1474.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1475.         Macro
  1476.         _CurveNewPath
  1477.             move.l              #$00040102,-(sp)
  1478.             moveq               #0,D0
  1479.             dc.w                $A82A
  1480.         EndM
  1481.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1482.         IMPORT_CFM_FUNCTION CurveNewPath
  1483.     ENDIF
  1484.  
  1485. ;
  1486. ; pascal ComponentResult CurveCountPointsInPath(ComponentInstance effect, gxPaths *aPath, unsigned long contourIndex, unsigned long *pCount)
  1487. ;
  1488.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1489.         Macro
  1490.         _CurveCountPointsInPath
  1491.             move.l              #$000C0103,-(sp)
  1492.             moveq               #0,D0
  1493.             dc.w                $A82A
  1494.         EndM
  1495.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1496.         IMPORT_CFM_FUNCTION CurveCountPointsInPath
  1497.     ENDIF
  1498.  
  1499. ;
  1500. ; pascal ComponentResult CurveGetPathPoint(ComponentInstance effect, gxPaths *aPath, unsigned long contourIndex, unsigned long pointIndex, gxPoint *thePoint, Boolean *ptIsOnPath)
  1501. ;
  1502.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1503.         Macro
  1504.         _CurveGetPathPoint
  1505.             move.l              #$00140104,-(sp)
  1506.             moveq               #0,D0
  1507.             dc.w                $A82A
  1508.         EndM
  1509.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1510.         IMPORT_CFM_FUNCTION CurveGetPathPoint
  1511.     ENDIF
  1512.  
  1513. ;
  1514. ; pascal ComponentResult CurveInsertPointIntoPath(ComponentInstance effect, gxPoint *aPoint, Handle thePath, unsigned long contourIndex, unsigned long pointIndex, Boolean ptIsOnPath)
  1515. ;
  1516.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1517.         Macro
  1518.         _CurveInsertPointIntoPath
  1519.             move.l              #$00120105,-(sp)
  1520.             moveq               #0,D0
  1521.             dc.w                $A82A
  1522.         EndM
  1523.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1524.         IMPORT_CFM_FUNCTION CurveInsertPointIntoPath
  1525.     ENDIF
  1526.  
  1527. ;
  1528. ; pascal ComponentResult CurveSetPathPoint(ComponentInstance effect, gxPaths *aPath, unsigned long contourIndex, unsigned long pointIndex, gxPoint *thePoint, Boolean ptIsOnPath)
  1529. ;
  1530.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1531.         Macro
  1532.         _CurveSetPathPoint
  1533.             move.l              #$00120106,-(sp)
  1534.             moveq               #0,D0
  1535.             dc.w                $A82A
  1536.         EndM
  1537.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1538.         IMPORT_CFM_FUNCTION CurveSetPathPoint
  1539.     ENDIF
  1540.  
  1541. ;
  1542. ; pascal ComponentResult CurveGetNearestPathPoint(ComponentInstance effect, gxPaths *aPath, FixedPoint *thePoint, unsigned long *contourIndex, unsigned long *pointIndex, Fixed *theDelta)
  1543. ;
  1544.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1545.         Macro
  1546.         _CurveGetNearestPathPoint
  1547.             move.l              #$00140107,-(sp)
  1548.             moveq               #0,D0
  1549.             dc.w                $A82A
  1550.         EndM
  1551.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1552.         IMPORT_CFM_FUNCTION CurveGetNearestPathPoint
  1553.     ENDIF
  1554.  
  1555. ;
  1556. ; pascal ComponentResult CurvePathPointToLength(ComponentInstance ci, gxPaths *aPath, Fixed startDist, Fixed endDist, FixedPoint *thePoint, Fixed *pLength)
  1557. ;
  1558.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1559.         Macro
  1560.         _CurvePathPointToLength
  1561.             move.l              #$00140108,-(sp)
  1562.             moveq               #0,D0
  1563.             dc.w                $A82A
  1564.         EndM
  1565.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1566.         IMPORT_CFM_FUNCTION CurvePathPointToLength
  1567.     ENDIF
  1568.  
  1569. ;
  1570. ; pascal ComponentResult CurveCreateVectorStream(ComponentInstance effect, Handle *pStream)
  1571. ;
  1572.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1573.         Macro
  1574.         _CurveCreateVectorStream
  1575.             move.l              #$00040109,-(sp)
  1576.             moveq               #0,D0
  1577.             dc.w                $A82A
  1578.         EndM
  1579.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1580.         IMPORT_CFM_FUNCTION CurveCreateVectorStream
  1581.     ENDIF
  1582.  
  1583. ;
  1584. ; pascal ComponentResult CurveAddAtomToVectorStream(ComponentInstance effect, OSType atomType, Size atomSize, void *pAtomData, Handle vectorStream)
  1585. ;
  1586.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1587.         Macro
  1588.         _CurveAddAtomToVectorStream
  1589.             move.l              #$0010010A,-(sp)
  1590.             moveq               #0,D0
  1591.             dc.w                $A82A
  1592.         EndM
  1593.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1594.         IMPORT_CFM_FUNCTION CurveAddAtomToVectorStream
  1595.     ENDIF
  1596.  
  1597. ;
  1598. ; pascal ComponentResult CurveAddPathAtomToVectorStream(ComponentInstance effect, Handle pathData, Handle vectorStream)
  1599. ;
  1600.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1601.         Macro
  1602.         _CurveAddPathAtomToVectorStream
  1603.             move.l              #$0008010B,-(sp)
  1604.             moveq               #0,D0
  1605.             dc.w                $A82A
  1606.         EndM
  1607.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1608.         IMPORT_CFM_FUNCTION CurveAddPathAtomToVectorStream
  1609.     ENDIF
  1610.  
  1611. ;
  1612. ; pascal ComponentResult CurveAddZeroAtomToVectorStream(ComponentInstance effect, Handle vectorStream)
  1613. ;
  1614.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1615.         Macro
  1616.         _CurveAddZeroAtomToVectorStream
  1617.             move.l              #$0004010C,-(sp)
  1618.             moveq               #0,D0
  1619.             dc.w                $A82A
  1620.         EndM
  1621.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1622.         IMPORT_CFM_FUNCTION CurveAddZeroAtomToVectorStream
  1623.     ENDIF
  1624.  
  1625. ;
  1626. ; pascal ComponentResult CurveGetAtomDataFromVectorStream(ComponentInstance effect, Handle vectorStream, long atomType, long *dataSize, Ptr *dataPtr)
  1627. ;
  1628.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1629.         Macro
  1630.         _CurveGetAtomDataFromVectorStream
  1631.             move.l              #$0010010D,-(sp)
  1632.             moveq               #0,D0
  1633.             dc.w                $A82A
  1634.         EndM
  1635.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1636.         IMPORT_CFM_FUNCTION CurveGetAtomDataFromVectorStream
  1637.     ENDIF
  1638.  
  1639.  
  1640. ;  UPP call backs 
  1641.     ENDIF ; __IMAGECODEC__ 
  1642.  
  1643.